package fiuba.model;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Encuesta extends BaseObject{

	/**
	 * 
	 */
	private static final long serialVersionUID = -5364951686580606479L;

	@Override
	public boolean equals(Object o) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return null;
	}

	
	private Long id;
	private String nombre;
	private String pregunta;
	private int tipo;
	private boolean activada;
	private String colorFondo;
	private String colorTexto;
	private String colorTitulo;
	private String colorBorde;

	private String colorResultado;
	private String colorResultadoGanador;
	private List <OpcionEncuesta> opciones  = new ArrayList<OpcionEncuesta>();
	private List <VotoEncuesta> votos  = new ArrayList<VotoEncuesta>();
	
	
	
	@Id @GeneratedValue(strategy = GenerationType.AUTO) 
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Column(length=50, unique=true)
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(length=100)
	public String getPregunta() {
		return pregunta;
	}

	public void setPregunta(String pregunta) {
		this.pregunta = pregunta;
	}
	@Column
	public int getTipo() {
		return tipo;
	}

	public void setTipo(int tipo) {
		this.tipo = tipo;
	}
	@Column
	public boolean isActivada() {
		return activada;
	}

	public void setActivada(boolean activada) {
		this.activada = activada;
	}
	@Column(length=10)
	public String getColorFondo() {
		return colorFondo;
	}

	public void setColorFondo(String colorFondo) {
		this.colorFondo = colorFondo;
	}
	@Column(length=10)
	public String getColorTexto() {
		return colorTexto;
	}

	public void setColorTexto(String colorTexto) {
		this.colorTexto = colorTexto;
	}
	@Column(length=10)
	public String getColorTitulo() {
		return colorTitulo;
	}

	public void setColorTitulo(String colorTitulo) {
		this.colorTitulo = colorTitulo;
	}

	@OneToMany(mappedBy="encuesta")
	public List<OpcionEncuesta> getOpciones() {
		Collections.sort(this.opciones);
		return opciones;
	}

	public void setOpciones(List<OpcionEncuesta> opciones) {
		this.opciones = opciones;
	}
	@Column(length=10)
	public String getColorBorde() {
		return colorBorde;
	}

	public void setColorBorde(String colorBorde) {
		this.colorBorde = colorBorde;
	}
	@OneToMany(mappedBy="encuesta")
	public List<VotoEncuesta> getVotos() {
		return votos;
	}

	public void setVotos(List<VotoEncuesta> votos) {
		this.votos = votos;
	}
	@Column(length=10)
	public String getColorResultado() {
		return colorResultado;
	}

	public void setColorResultado(String colorResultado) {
		this.colorResultado = colorResultado;
	}
	@Column(length=10)
	public String getColorResultadoGanador() {
		return colorResultadoGanador;
	}

	public void setColorResultadoGanador(String colorResultadoGanador) {
		this.colorResultadoGanador = colorResultadoGanador;
	}
	
	

	
}
